.TITLE DRCPC .IDENT /03.00/ ; ; Copyright (c) 1995-1999 by Mentec, Inc., U.S.A. ; All rights reserved ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED ; OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE. ; ; ORIGINALLY PART OF DRREG, ADDED BY T. M. MARTIN ; ; SPLIT INTO SEPARATE MODULE BY B. S. MCCARTHY AS PART OF CREATING ; THIRD DIRECTIVE COMMON WITH PLAS DIRECTIVES (BM292) 28-NOV-83 ;+ ; ; **-$DRCPC-CHECKPOINT COMMON REGION ; ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO CHECKPOINT ; A NAMED STATIC COMMON REGION. THE ISSUING TASK MUST BE ; PRIVILEGED AND ATTACHED TO THE COMMON BUT NOT NECESSARILY ; MAPPED. ANY TASK WHICH IS MAPPED TO THE COMMON WHICH IS ; BEING CHECKPOINTED IS BLOCKED UNTIL THE CHECKPOINT HAS ; COMPLETED. ; ; DPB FORMAT: ; ; WD. 00 -- DIC (205.), DPB SIZE (6.) ; WD. 01 -- FIRST WORD OF RAD50 PARTITION NAME ; WD. 02 -- SECOND WORD OF RAD50 PARTITION NAME ;(soon) WD. 03 -- SPECIFIED EVENT FLAG ;(soon) WD. 04 -- ADDRESS OF I/O STATUS DOUBLEWORD ;(soon) WD. 05 -- ADDRESS OF USER AST ROUTINE ; ; INPUTS: ; ; R3=ADDRESS OF WD. 00 + 2. ; R4=ADDRESS OF THE HEADER OF THE CURRENT TASK ; R5=ADDRESS OF THE TCB OF THE CURRENT TASK. ; ; OUTPUTS: ; ; DIRECTIVE STATUS ; .IF DF, C$$PCR $DRCPC::BIT #T3.PRV,T.ST3(R5) ;IS THE ISSUER PRIVILEGED? BEQ 25$ ;IF EQ NO, RETURN ERROR MOV T.ATT(R5),R0 ;POINT TO FIRST ADB 10$: MOV A.PCB-A.TCBL(R0),R1 ;PICK UP PCB ADDRESS CMP P.NAM(R1),(R3) ;IS THIS THE REGION? BNE 20$ ;IF NE NO CMP P.NAM+2(R1),2(R3) ;REALLY? BEQ 30$ ;IF EQ, FOUND IT 20$: MOV (R0),R0 ;GET NEXT ADB BNE 10$ ;TRY NEXT ATTACHMENT DRSTS D.RS94 ;RETURN ERROR 'IE.PNS' 25$: DRSTS D.RS16 ;RETURN ERROR 'IE.PRV' 26$: DRSTS D.RS8 ;RETURN ERROR 'IE.ITS' 30$: MOV R1,R4 ;SAVE PCB ADDRESS ADD #P.STAT,R1 ;POINT TO PCB STATUS WORD BIT #PS.CKP!PS.CHK,(R1) ;PARTITION NON CHECKPOINTABLE OR ;HAS CHECKPOINT IN PROGRESS? BNE 26$ ;IF NE YES, RETURN ERROR BIT #PS.COM,(R1)+ ;IS IT A COMMON? BEQ 26$ ;IF EQ NO BIT #P2.CPC,(R1) ;CPCR ALREADY IN PROGRESS? BNE 26$ ;IF NE YES MOV R4,R1 ;RESTORE PCB ADDRESS TST P.DPCB(R1) ;IS REGION A STATIC COMMON? BEQ 26$ ;IF EQ NO BIS #P2.CPC,P.ST2(R1) ;INDICATE CPCR IN PROGRESS CALLR $ICHKP ;AND INITIATE CHECKPOINT OF REGION .ENDC ; DF C$$CPR .END